package com.ruoyi.project.cms.sm.role.service;

import com.ruoyi.project.cms.sm.role.domain.SMRole;

import java.util.List;

/**
 * @author ：MrL
 * 时间：2020-05-19
 */
public interface ISMRoleService {

    /**
     * 根据条件分页查询角色信息
     *
     * @param role
     * @return
     */
    List<SMRole> selectRoleList(SMRole role);

    /**
     * 校验角色名称的唯一性
     *
     * @param role
     * @return
     */
    String checkRoleNameUnique(SMRole role);

    /**
     * 添加角色
     *
     * @param role
     * @return
     */
    int insertRole(SMRole role);

    /**
     * 根据ID删除角色
     *
     * @param ids
     * @return
     */
    int deleteRoleByIds(String ids);

    /**
     * 通过角色ID查询角色
     *
     * @param roleId 角色ID
     * @return 角色对象信息
     */
    SMRole selectRoleById(Long roleId);

    /**
     * 通过角色ID查询角色使用数量
     *
     * @param roleId 角色ID
     * @return 结果
     */
    int countUserRoleByRoleId(Long roleId);

    /**
     * 更新角色
     *
     * @param role
     * @return
     */
    int updateRole(SMRole role);

    /**
     * 校验角色是否允许被操作
     *
     * @param role
     */
    void checkRoleAllowed(SMRole role);
}
